New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

automata.js

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

automata.js

A library convert regular expression to finite state matchine

  • 0.2.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
decreased by-66.67%
Maintainers
1
Weekly downloads
 
Created
Source

Automata.js

Automata.js is a regular expression converter written in JS for both Node.js and browser.

It aims to convert regular expression to finite state machine(FSM, like NFA). Besides, dot script transition is provided so that you can make diagrams with Graphiz.

Try it online!

screenshot

Development

// Install dependency modules.
npm install

// Run test.
make test

// Generate browser js.
make distribution

API Description

Currently, Automata.js supports minimal regular expressions:

  • +: One or more
  • *: Zero
  • ?: Zero or one
  • (): Capture everything enclosed
  • |: Or
  • \n: Newline
  • \r: Carriage return
  • \t: Tab
  • \w: [a-zA-Z0-9_]
  • \d: [0-9]

###FSM

FSM is a object represent a finite state machine(NFA, DFA).

The json definition is below:

{
  initialState: 'id',
  acceptState: ['id', ... ] ,
  numOfStates: Integer,
  type: 'DFA' or 'NFA',
  transitions: {
    'id': { 'to_id': label, },
    ...,
  }
}
FSM.toDotScript()

Convert the fsm to Graphiz dot script.

FSM.match(text)
  • text: String

Determine whether text matches to the FSM. This methods only supports DFA.

###RegParser

RegParser is a regular expression parser.

####RegParser.reset(string)

Set regular expression string in parser.

####RegParser.parseToNFA()

Parses the given regular expression.

Returns a FSM object, the FSM represents a Nondeterministic Finite Automata(NFA).

####RegParser.parseToDFA()

Parses the given regular expression.

Returns a FSM object, the FSM represents a Deterministic Finite Automata(DFA).

Usage

###Usage in Node.js

Install via npm install automata.js.

var regParser = require('automata.js');

var parser = new regParser.RegParser('a*b');
var nfa = parser.parseToNFA();

console.log(nfa.toDotScript());

###Usage in Browser

Reg2Automata uses node-browserify to generate a browser distribution.

You can use Viz.js to render graphiz dot script in your web page.

var regParser = require('automata.js');

var parser = new regParser.RegParser('a*b');
var nfa = regParser.parseToNFA();

// render dot script to svg.
var result = Viz(nfa.toDotScript(), 'svg', 'dot');

Keywords

FAQs

Package last updated on 31 Aug 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc